#ifndef __LCD_INIT_H
#define __LCD_INIT_H

#include "main.h"

#define USE_HORIZONTAL 2

#if (0==USE_HORIZONTAL || 1==USE_HORIZONTAL)
#define	TFT_X_MAX	128
#define TFT_Y_MAX	160
#elif (2==USE_HORIZONTAL || 3==USE_HORIZONTAL)
#define	TFT_X_MAX	160
#define TFT_Y_MAX	128
#else
#error "TFT_DISPLAY_DIR ERROR"
#endif

//-----------------LCD�˿ڶ���----------------

#define LCD_BLK_Clr()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4,GPIO_PIN_RESET)
#define LCD_BLK_Set()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4,GPIO_PIN_SET)

#define LCD_DC_Clr()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_RESET)
#define LCD_DC_Set()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_SET)

#define LCD_CS_Clr()   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15,GPIO_PIN_RESET)
#define LCD_CS_Set()   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15,GPIO_PIN_SET)

#define LCD_RS_Clr()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_RESET)
#define LCD_RS_Set()   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_SET)


#define init_buf_arg_len 20
typedef struct
{
    struct
    {
        unsigned char reg;
        unsigned char arg_len;
        unsigned char args[init_buf_arg_len];
    } data[init_buf_arg_len];
    unsigned char len;
} init_buf;

#define st7735_init_args  st7735_init_buf
#define TRANSMIT_DMA      1


void lcd_device_init(void);

void LCD_WR_DATA8(u8* dat);
#endif

